<template>
  <fieldset>
    <legend>tab选项卡</legend>
    <button
      v-for="btn in buttons"
      :key="btn"
      :class="['tab-button', { active: btn === selectBtn }]"
      @click="handleClick(btn)"
    >
      {{ btn }}
    </button>
    <div class="tab" :is="dynamic"></div>
  </fieldset>
</template>

<script>
import email from "./email-com.vue";
import home from "./home-com.vue";
import my from "./my-com.vue";

export default {
  data() {
    return {
      buttons: ["email", "home", "my"],
      selectBtn: "email",
    };
  },

  methods: {
    handleClick(btn) {
      console.log(btn);
      this.selectBtn = btn;
    },
  },

  computed: {
    dynamic() {
      return this.selectBtn;
    },
  },

  components: {
    email,
    home,
    my,
  },
};
</script>



<style scoped>
.tab-button {
  padding: 6px 10px;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
  border: 1px solid #ccc;
  cursor: pointer;
  background: #f0f0f0;
  margin-bottom: -1px;
  margin-right: -1px;
}

.tab-button:hover {
  background: #e0e0e0;
}

.tab-button.active {
  background: hotpink;
}

.tab {
  border: 1px solid #ccc;
  padding: 10px;
}

h1 {
  margin: 0;
}
</style> 